```vue:d:\桌面\小程序\app\my-project\src\views\StoreList.vue
<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索店铺或菜品" @input="searchStores" />
    <ul>
      <li v-for="store in filteredStores" :key="store.id">
        <router-link :to="{ name: 'StoreDetail', params: { id: store.id } }">
          {{ store.name }} - 评分: {{ store.rating }} - 人均: {{ store.averagePrice }}
        </router-link>
      </li>
    </ul>
    <button @click="loadMore">加载更多</button>
  </div>
</template>

<script>
import { ref, onMounted } from 'vue';
import { useRouter } from 'vue-router';

export default {
  name: 'StoreList',
  setup() {
    const router = useRouter();
    const stores = ref([]);
    const searchQuery = ref('');
    const page = ref(1);

    const fetchStores = async () => {
      try {
        const response = await fetch('/mock/stores.json');
        stores.value = await response.json();
      } catch (error) {
        console.error('获取店铺数据失败:', error);
      }
    };

    const searchStores = () => {
      // 实现搜索逻辑
    };

    const loadMore = () => {
      // 实现加载更多逻辑
      page.value++;
    };

    onMounted(() => {
      fetchStores();
    });

    const filteredStores = computed(() => {
      return stores.value.filter(store =>
        store.name.toLowerCase().includes(searchQuery.value.toLowerCase())
      );
    });

    return {
      stores,
      searchQuery,
      searchStores,
      loadMore,
      filteredStores
    };
  }
};
</script>
```